package com.qifan.energy.util;

import android.app.Activity;

import androidx.annotation.DrawableRes;

import com.qifan.energy.R;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;
import com.umeng.socialize.media.UMWeb;

import java.io.File;

/**
 * 友盟分享工具
 */
public class UMShareUtils {

    /*umShareListener为回调监听*/
    private static UMShareListener defaultShareListener = new UMShareListener() {
        /**
         * @descrption 分享开始的回调
         * @param platform 平台类型
         */
        @Override
        public void onStart(SHARE_MEDIA platform) {

        }
        /**
         * @descrption 分享成功的回调
         * @param platform 平台类型
         */
        @Override
        public void onResult(SHARE_MEDIA platform) {

        }
        /**
         * @descrption 分享失败的回调
         * @param platform 平台类型
         * @param t 错误原因
         */
        @Override
        public void onError(SHARE_MEDIA platform, Throwable t) {
            ToastUtils.showShort(t.getMessage());
        }
        /**
         * @descrption 分享取消的回调
         * @param platform 平台类型
         */
        @Override
        public void onCancel(SHARE_MEDIA platform) {
            ToastUtils.showShort("取消了");
        }
    };

    /**
     * 面板分享
     *
     * @param activity    content 对象
     * @param title       标 题
     * @param description 描 述
     * @param url         分 享 路 径
     * @param imgRes      图 片 资 源
     * @param listener    分 享 监 听
     */
    public static void shareWxWithPanelImage(Activity activity, String title, String description, String url, String imgRes, UMShareListener listener) {
        UMImage umImage = null;
        if (CheckUtil.hasContent(imgRes)) {
            umImage = new UMImage(activity, imgRes);
        } else {
            umImage = new UMImage(activity, R.mipmap.ic_launcher);
        }
        UMWeb web = new UMWeb(url);
        web.setTitle(title);//标题
        web.setThumb(umImage);  //缩略图
        web.setDescription(description);//描述
        new ShareAction(activity).setDisplayList(SHARE_MEDIA.WEIXIN)
                .setCallback(listener == null ? defaultShareListener : listener)
                .withMedia(web)
                .open();
    }

    /**
     * 面板分享
     *
     * @param activity    content 对象
     * @param title       标 题
     * @param description 描 述
     * @param url         分 享 路 径
     * @param imgRes      图 片 资 源
     * @param listener    分 享 监 听
     */
    public static void shareWxWithPanelImage(Activity activity, String title, String description, String url, @DrawableRes int imgRes, UMShareListener listener) {
        UMImage umImage = new UMImage(activity, imgRes);
        UMWeb web = new UMWeb(url);
        web.setTitle(title);//标题
        web.setThumb(umImage);  //缩略图
        web.setDescription(description);//描述
        new ShareAction(activity).setDisplayList(SHARE_MEDIA.WEIXIN)
                .setCallback(listener == null ? defaultShareListener : listener)
                .withMedia(web)
                .open();
    }

    /**
     * 无面板分享
     *
     * @param activity    content 对象
     * @param title       标 题
     * @param description 描 述
     * @param url         分 享 路 径
     * @param imgRes      图 片 资 源
     * @param listener    分 享 监 听
     */
    public static void shareWxLink(Activity activity, String title, String description, String url, String imgRes, UMShareListener listener) {
        UMImage umImage = new UMImage(activity, new File(imgRes));
        UMWeb web = new UMWeb(url);
        web.setTitle(title);//标题
        web.setThumb(umImage);  //缩略图
        web.setDescription(description);//描述
        new ShareAction(activity)
                .setPlatform(SHARE_MEDIA.WEIXIN)//传入平台
                .setCallback(listener == null ? defaultShareListener : listener)//回调监听器
                .withMedia(web)
                .share();
    }

    /**
     * 无面板分享
     *
     * @param activity    content 对象
     * @param title       标 题
     * @param description 描 述
     * @param imgRes      图 片 资 源
     * @param listener    分 享 监 听
     */
    /*public static void shareWxImage(Activity activity, String title, String description, String imgRes, UMShareListener listener) {
        if (imgRes == null) {
            return;
        }
        if (imgRes.endsWith(".gif") || imgRes.endsWith(".GIF")) {
            shareWxGif(activity, imgRes, title, description);
        } else {
            UMImage umImage = new UMImage(activity, new File(imgRes));
            umImage.compressStyle = UMImage.CompressStyle.QUALITY;
            umImage.setThumb(new UMImage(activity, compressImg(activity, imgRes)));
            umImage.setTitle(title);
            new ShareAction(activity)
                    .setPlatform(SHARE_MEDIA.WEIXIN)//传入平台
                    .setCallback(listener == null ? defaultShareListener : listener)//回调监听器
                    .withMedia(umImage)
                    .withText(description)
                    .share();
        }
    }*/

    /*public static void shareWxGif(Activity activity, String imgRes, String title, String description) {
        UMEmoji emoji = new UMEmoji(activity, new File(imgRes));
        emoji.setThumb(new UMImage(activity, compressImg(activity, imgRes)));
        emoji.setTitle(title);
        new ShareAction(activity)
                .setPlatform(SHARE_MEDIA.WEIXIN)//传入平台
                .setCallback(defaultShareListener)//回调监听器
                .withMedia(emoji)
                .withText(description)
                .share();
    }*/

    /**
     * 无面板分享
     *
     * @param activity    content 对象
     * @param title       标 题
     * @param description 描 述
     * @param url         分 享 路 径
     * @param imgRes      图 片 资 源
     * @param listener    分 享 监 听
     */
    public static void shareWxLink(Activity activity, String title, String description, String url, @DrawableRes int imgRes, UMShareListener listener) {
        UMImage umImage = new UMImage(activity, imgRes);
        UMWeb web = new UMWeb(url);
        web.setTitle(title);//标题
        web.setThumb(umImage);  //缩略图
        web.setDescription(description);//描述
        new ShareAction(activity)
                .setPlatform(SHARE_MEDIA.WEIXIN)//传入平台
                .setCallback(listener == null ? defaultShareListener : listener)//回调监听器
                .withMedia(web)
                .share();
    }

    public static void shareWxLinkToCircle(Activity activity, String title, String description, String url, @DrawableRes int imgRes, UMShareListener listener) {
        UMImage umImage = new UMImage(activity, imgRes);
        UMWeb web = new UMWeb(url);
        web.setTitle(title);//标题
        web.setThumb(umImage);  //缩略图
        web.setDescription(description);//描述
        new ShareAction(activity)
                .setPlatform(SHARE_MEDIA.WEIXIN_CIRCLE)//传入平台
                .setCallback(listener == null ? defaultShareListener : listener)//回调监听器
                .withMedia(web)
                .share();
    }

    /*public static File compressImg(Context ctx, String path) {
        return new CompressHelper.Builder(ctx)
                .setMaxWidth(360)  // 默认最大宽度为720
                .setMaxHeight(480) // 默认最大高度为960
                .setQuality(60)    // 默认压缩质量为80
                .setFileName("temp" + FileUtils.createNewFilePath()) // 设置你需要修改的文件名
                .setCompressFormat(Bitmap.CompressFormat.JPEG) // 设置默认压缩为jpg格式
                .setDestinationDirectoryPath(FileUtils.getPublicDiskSafe())
                .build()
                .compressToFile(new File(path));
    }*/

}
